{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "# Mean, Median, Mode, and introducing NumPy"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "## Mean vs. Median"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "Let's create some fake income data, centered around 27,000 with a normal distribution and standard deviation of 15,000, with 10,000 data points. (We'll discuss those terms more later, if you're not familiar with them.)\n",
    "\n",
    "Then, compute the mean (average) - it should be close to 27,000:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "27006.630375676905"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "incomes = np.random.normal(27000, 15000, 10000)\n",
    "np.mean(incomes)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "We can segment the income data into 50 buckets, and plot it as a histogram:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1dc845ec7f0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "plt.hist(incomes, 50)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "Now compute the median - since we have a nice, even distribution it too should be close to 27,000:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "27195.153719614136"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.median(incomes)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "Now we'll add Donald Trump into the mix. Darn income inequality!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "incomes = np.append(incomes, [1000000000])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "The median won't change much, but the mean does:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "27195.884278535214"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.median(incomes)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "126993.93098257863"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.mean(incomes)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "## Mode"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "Next, let's generate some fake age data for 500 people:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([82, 39, 59, 78, 45, 66, 73, 64, 27, 25, 58, 24, 80, 39, 68, 25, 49,\n",
       "       55, 73, 49, 79, 51, 79, 87, 39, 24, 44, 45, 85, 22, 56, 68, 42, 27,\n",
       "       71, 42, 49, 45, 18, 30, 85, 56, 47, 86, 29, 58, 32, 65, 36, 27, 61,\n",
       "       55, 27, 30, 69, 44, 52, 37, 47, 63, 65, 70, 85, 85, 29, 85, 87, 49,\n",
       "       75, 52, 87, 59, 60, 34, 63, 71, 39, 71, 18, 38, 43, 22, 49, 78, 50,\n",
       "       20, 61, 38, 26, 58, 85, 85, 84, 66, 54, 58, 68, 76, 62, 77, 18, 31,\n",
       "       53, 79, 55, 20, 27, 87, 41, 27, 64, 40, 47, 18, 34, 50, 76, 32, 58,\n",
       "       60, 89, 74, 33, 70, 85, 76, 66, 75, 26, 29, 19, 21, 53, 32, 53, 80,\n",
       "       20, 51, 48, 67, 66, 41, 23, 88, 54, 29, 70, 37, 62, 50, 86, 59, 75,\n",
       "       50, 64, 60, 45, 65, 32, 27, 87, 68, 65, 43, 85, 68, 68, 40, 20, 27,\n",
       "       77, 52, 79, 78, 69, 43, 57, 25, 57, 76, 87, 69, 76, 76, 45, 81, 62,\n",
       "       24, 71, 88, 19, 83, 62, 65, 25, 33, 24, 27, 19, 31, 37, 57, 36, 42,\n",
       "       22, 67, 77, 44, 24, 28, 52, 24, 56, 82, 58, 62, 34, 70, 29, 60, 22,\n",
       "       35, 43, 69, 44, 23, 63, 79, 57, 70, 57, 26, 60, 25, 53, 76, 32, 58,\n",
       "       77, 86, 88, 81, 89, 84, 44, 55, 31, 33, 85, 74, 56, 67, 72, 74, 70,\n",
       "       37, 64, 42, 58, 36, 57, 52, 52, 20, 51, 84, 53, 54, 37, 52, 66, 43,\n",
       "       71, 24, 53, 60, 38, 83, 43, 46, 54, 86, 23, 27, 88, 81, 38, 37, 73,\n",
       "       69, 33, 22, 49, 67, 55, 43, 18, 69, 53, 21, 42, 21, 88, 79, 53, 19,\n",
       "       36, 71, 38, 76, 55, 40, 52, 37, 70, 55, 50, 79, 87, 48, 85, 42, 65,\n",
       "       89, 65, 72, 43, 32, 47, 67, 44, 75, 65, 43, 45, 83, 49, 84, 56, 78,\n",
       "       27, 42, 86, 46, 58, 84, 61, 82, 38, 83, 72, 68, 78, 22, 72, 50, 20,\n",
       "       54, 84, 77, 48, 57, 45, 57, 55, 36, 26, 77, 22, 23, 49, 48, 85, 80,\n",
       "       67, 83, 78, 79, 57, 39, 86, 38, 33, 35, 73, 31, 66, 81, 72, 84, 43,\n",
       "       68, 63, 63, 38, 61, 48, 59, 81, 48, 78, 78, 51, 41, 57, 84, 53, 30,\n",
       "       69, 77, 71, 55, 37, 89, 65, 63, 88, 60, 33, 57, 33, 75, 28, 38, 33,\n",
       "       21, 55, 57, 33, 40, 70, 60, 44, 53, 76, 89, 67, 86, 80, 86, 67, 85,\n",
       "       35, 81, 89, 82, 35, 24, 87, 36, 53, 20, 64, 31, 59, 68, 82, 68, 22,\n",
       "       30, 22, 47, 24, 42, 77, 64, 20, 25, 55, 71, 61, 65, 49, 21, 37, 61,\n",
       "       44, 87, 24, 69, 64, 44, 40, 29, 44, 47, 32, 29, 81, 67, 33, 81, 34,\n",
       "       53, 82, 35, 29, 34, 44, 35])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ages = np.random.randint(18, high=90, size=500)\n",
    "ages"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "ModeResult(mode=array([85]), count=array([13]))"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from scipy import stats\n",
    "stats.mode(ages)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
